import os
import sys
import time
import keyboard

# 修改窗口标题（仅适用于 Windows）
if os.name == 'nt':  # 判断是否为 Windows 系统
    import ctypes
    ctypes.windll.kernel32.SetConsoleTitleW("跳跳乐嘎嘎跳")

# 定义按键
crouch_key = 'ctrl'       # 闪蹲键（蹲下键）
trigger_key = 'space'     # 触发键（空格键）
exit_key = 'F12'          # 退出键

# 标志变量
is_triggered = False      # 是否已经触发延迟
is_running = False        # 是否正在执行闪蹲操作
delay_time = 0.3          # 延迟时间，单位为秒

def perform_crouch():
    # 模拟闪蹲
    keyboard.press(crouch_key)
    time.sleep(0.01)
    keyboard.release(crouch_key)

# 监听空格键的按下和释放事件
def on_key_event(event):
    global is_triggered, is_running

    if event.name == trigger_key:
        if event.event_type == keyboard.KEY_DOWN:
            if not is_triggered:
                # 按下空格键后，延迟 0.3 秒
                time.sleep(delay_time)
                is_triggered = True
                is_running = True
        elif event.event_type == keyboard.KEY_UP:
            # 松开空格键后重置状态
            is_triggered = False
            is_running = False

# 设置键盘事件监听
keyboard.hook(on_key_event)

# 主循环
print(f"按 {trigger_key} 延迟0.3秒后持续执行闪蹲，按 {exit_key} 退出...")

try:
    while True:
        if is_running:
            # 持续执行闪蹲操作
            perform_crouch()

        if keyboard.is_pressed(exit_key):
            print("程序已退出")
            break

        time.sleep(0.01)
except KeyboardInterrupt:
    print("程序已退出")
finally:
    # 清理键盘监听
    keyboard.unhook_all()